\chapter{Introduction}
\label{introduction}
\acresetall
% Introduction
Wireless connectivity between mobile devices has been increasing since the introduction of mobile phones and laptops. With introduction of smartphones, tablets and even smart TVs, the demand for data throughput on wireless networks has never been higher than now \cite{CISCO}.
The new portable smart devices have introduced a new market for media streaming services, and with the increasing popularity of tablets and smartphones, media streaming on wireless devices are predicted to expand in the future. This, along with the demand for high-definition content, could cause heavy load on the wireless networks in the very near future. According to Cisco \textregistered, mobile video traffic exceeded 50 \% of all mobile traffic already in 2011 \cite{CISCO}. Thus, significant reduction of the network load from video traffic, would cause significant reduction in the total network load.  %\fixme{Måske bør man så konkludere, at metoder der vil sænke loadet fra video trafik, også vil have stor påvirkning på det generelle load. E:Ja, i konklusionen forventer vi at behovet for 'bedre' løsninger vil stige}

% Motivation
This project is based on the problem of receiving video data on multiple nodes when transmitting through an unreliable data channel. Furthermore, the receiving nodes may have varying channel capacity. The current approach for distributing video data to multiple nodes requires individual connections to each node. Thereby, the exact same data is distributed through all the individual connections. 
For example, in a scenario where a number of nodes all watch a live TV stream on the same network, e.g. international sports events over 3G. This is a non-optimal utilisation of the available network capacity. Due to the broadcast nature of wireless communication, an optimal solution would essentially be to transmit the stream once, and have all nodes receive this stream. %\fixme{JK: non-optimal fordi det burde være rigeligt kun at sende det hele en gang til alle.? E: Ja, trådløs er naturligt broadcast, så direkte fjollet ikke at 'broadcaste'.}

% State of the art
Several solutions to this problem have been proposed, however most remain in the form of preliminary research and implementation \cite{UEP_RLC_MC}. One solution is to code the packets as linear combinations, also known as linear network coding. \ac{NC} was originally developed with optimisation of throughput in routed networks in mind, but later research has been able to apply the idea to single hop networks to reduce overhead. Generally, \ac{NC} research is either purely theoretical, or implementations of simple \ac{RLNC} without regards to the source data.
%\fixme{JK: Introducer generelt hvad state-of-state NC er pt?: simple RLNC og ellers rent teoretisk - Dejans paper er vel i høj grad også teoretisk. Han har måske lige flækket noget svc video sammen, men så er det vel også lagt tilbage på hylden igen. E: Ok}
A research team from \ac{AAU} has applied \ac{NC} to a setup of multiple nodes requiring the same data. In this specific case a video stream. In the case of a broadcast network, the idea is to transmit random linear combinations of the source packets until there is a high probability that all the nodes have a full set of linear independent combinations.

% Contribution
In this project, streaming video data to multiple nodes with \ac{NC} applied will be taken further. The focus will be on the implications of streaming to nodes with heterogeneous channel conditions and to propose and implement a solution. In contrast to most research and implementations in the field of \ac{NC}, source coding is taken into consideration when implementing \ac{NC} to accommodate nodes with bad link quality, while reducing the overall network load.
%\fixme{JK: Bør vi ikke blære os lidt her?: I modsætning til de andre undersøgelser og implementeringer, knytter vi source code tæt sammen med nc, for at reducere loadet på netværket (ved kun at sende en enkelt stream, men samtidigt med at vi tilgodeser links med elendig forbindelse. E: OK cross layer optimisation, buzzword perhaps..? }
Throughout the project, the use of \ac{NC} to protect important data is investigated. Multiple setups with \ac{RLNC} are analysed. Furthermore, an investigation of video source coding is performed to gain knowledge on how to protect the most important data in a video stream. To confirm the findings throughout the project, an application utilising the proposed \ac{NC} methods is created and tested to prove coherence between theory and practice. The implementation utilises standardised and widely used video source coding, and can be used with most conventional video data.%\fixme{JK: Blær os mere: Implementering benytter helt standard, bredt benyttet video source kodning, og kræver derfor intet extra arbejde af video enkodningen. Stik den dejan, din fisse.E: Ok... blær med måde.}


% (Organization of the following)






























































%sammenhæng mellem teori og praksis

% \fixme{B: Ved ikke lige hvordan jeg skal skrive et godt "springbræt" til næste kapitel.}


% This solution is feasible because the probability that a new random linear combination of the source packets is usable to the receiver is shown to be high. This means that the ability to decode the generation is independent of which coded packets the individual nodes receive as long as the set is linear independent, e.g. the individual nodes have lost different packets and therefore have different sets. The source node will have to transmit a redundancy of coded source packets to maximize the probability that all nodes have received enough packets to decode. \fixme{B: kilde til janus's arbejde}





%What is this about..


%Motivation:

%Wireless connectivity - Laptops, Netbooks, Tablets, smartphones etc
%Internet Media streaming services -> gaining ground against good ol' broadcast


%Contents of project:
%Investigation of solution, and how this is done, both theoretically and practically (Hvor ligger simuleringer? - (Inbetween)



%Oglæg til Chapter 2.





%*****UDKAST*****


%This project is based on the problem of successfully receiving data through an unreliable data channel when transmitting to multiple nodes. A lot of solutions to this problem has been proposed and some of them standardized and implemented. One solution to the problem, proposed in the year 2000, is to code the packets at the sender as linear combinations of each other, also called linear network coding\fixme{B: Kilde til "NC-Historical perspective}. The solution was originally developed with optimization of throughput in routed network in mind, but later research has been able to apply the idea to single hop networks to reduce overhead. 

%A research team from Aalborg University has applied network coding to a setup of multiple receivers needing the same data, in this specific case identical video streams. In the case of a broadcast network the idea is to transmit random linear combinations of the source packets until the probability that all the receivers have a full set of independent combination, that is able to decode the generation. This solution is feasible because the probability that a new random linear combination of the source packets is usable to the receiver is shown to be high. This means that the ability to decode the generation is independent of which coded packets the individual nodes receive as long as the set is linear independent, e.g. the individual nodes have lost different packets and therefore have different sets. The source node will have to transmit a redundancy of coded source packets to maximize the probability that all nodes have received enough packets to decode. \fixme{B: kilde til janus's arbejde}

%In this project video streaming to multiple nodes with network coding applied will be taken one step further. The focus will be on the implications of streaming to nodes with different link qualities and to propose and implement a solution. \fixme{B: Ved ikke lige hvordan jeg skal skrive et godt "springbræt" til næste kapitel.}
